package modelo.entidad;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.IndexColumn;

@Entity
@Table(name="tipopublicacion",schema="public")
@PrimaryKeyJoinColumn(name="id")
public class Tipopublicacion implements Serializable {
	private static final long serialVersionUID = 1L;
	
	@Id    
	@SequenceGenerator(name="SeqId", sequenceName="public.tipopublicacion_id_seq", allocationSize=1)	
	@GeneratedValue(generator="SeqId")
	private int id;
	
	@Column(name="descripcion")
	private String descripcion;
	
	@Column(name="costodiario")
	private double costodiario;
	
    @OneToMany(cascade= CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="id_tipopublicacion")
    @IndexColumn(name="idx")
	private List<Publicacion> publicaciones;

	public Tipopublicacion() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Tipopublicacion(int id, String descripcion, double costodiario) {
		super();
		this.id = id;
		this.descripcion = descripcion;
		this.costodiario = costodiario;
	}

	public int getId() {
		return id;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public double getCostodiario() {
		return costodiario;
	}

	public List<Publicacion> getPublicaciones() {
		return publicaciones;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public void setCostodiario(double costodiario) {
		this.costodiario = costodiario;
	}

	public void setPublicaciones(List<Publicacion> publicaciones) {
		this.publicaciones = publicaciones;
	}
	
	
}
